package com.icetech.eom.dao.sys;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.icetech.eom.domain.sys.Permission;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author wangzw
 * @since 2018-12-10
 */
public interface PermissionDao extends BaseMapper<Permission> {

    /**
     * 获取用户菜单权限
     * @param userId
     * @return+
     */
    List<Permission> findByUserId(@Param("userId") Long userId);

    /**
     * 根据类型和状态获取权限
     * @param type
     * @param status
     * @return
     */
    List<Permission> findByTypeAndStatusOrderBySortOrder(@Param("type") Integer type, @Param("status") Integer status);

    /**
     * 根据级别获取权限
     * @param level
     * @return
     */
    List<Permission> findByLevelOrderBySortOrder(@Param("level") Integer level);

    /**
     * 根据父级获取权限
     * @param parentId
     * @return
     */
    List<Permission> findByParentIdOrderBySortOrder(@Param("parentId") Long parentId);

    /**
     * 根据标题获取权限
     * @param title
     * @return
     */
    List<Permission> findByTitle(@Param("title") String title);

    /**
     * 模糊查询 title
     * @param title
     * @return
     */
    List<Permission> findByTitleLikeOrderBySortOrder(String title);

    /**
     * 获取所有启用的权限信息
     * @return
     */
    List<Permission> findAllPermission();

    List<Permission> findByIdsAndLevel(@Param("permissionIds") List<Long> permissionIds, @Param("level") Integer level);
}
